This invention relates to systems and methods for securing data stored within a programmable device—e.g., a field-programmable gate array (FPGA) or other programmable logic device (PLD)—against copying and/or other tampering.
Programmable devices are well known. Generally, programmable devices, such as FPGAs, contain volatile and non-volatile storage components within which sensitive information may be stored. For example, an encryption key—used to decrypt encrypted data within the device—may be stored in a volatile register of the programmable device.
An attacker, or other illicit user, may employ any number of techniques to recover and/or copy this sensitive information. One favored attack involves running the programmable device under extreme conditions. For example, an attacker may apply an excessive voltage to the device in the hope that the device will act in an unpredictable fashion, potentially providing access to sensitive information otherwise secured. This technique is commonly known as an over-voltage attack, and it includes subjecting the device to voltage spikes and/or a heightened voltage level for some length of time.